Model Checking and Code Generation for UML State Machines and Collaborations
نویسندگان
چکیده
The “Unified Modeling Language” (UML [1]) is generally accepted as the de facto standard notation for the analysis and design of object-oriented software systems. It provides diagrams for the description of static, dynamic, and architectural aspects of systems at different levels of detail. In particular, dynamic aspects of system behavior can be specified with the help of interaction (i.e., collaboration or sequence) diagrams that describe single system runs. A more operational view is provided by UML state machines, a variant of the Statechart notation introduced by Harel [2], that are associated with instances of classes. The UML deliberately encourages the use of redundant descriptions of the same aspects of a system, for example during different phases of software development. This redundancy generates an obvious opportunity for verification and validation techniques to ensure the consistency of these descriptions. Moreover, formal methods are generally most beneficial when applied to abstract descriptions. We describe an ongoing project to develop a set of tools, tentatively called HUGO, where model checking technology is applied to relate UML state machines and interaction diagrams. Considering the state machine view as the “model” and the interaction view as the “property”, model checking can be used to ensure that a system run as specified by the interaction diagram can indeed be realised by a set of interacting state machines. In some cases, the absence of errors can be expressed as the impossibility to realise certain “erroneous” interactions. As is typical for applications of model checking, we concentrate on the control part of UML models and largely abstract from the data manipulations. While verification technology such as model checking can reveal errors in system designs, coding errors during later implementation stages may still occur. Since state machines can specify an object’s behavior in full detail, we propose to generate code directly from the UML model. Ideally, formal analysis and code generation are applied to the same model, raising the confidence in the correctness of the resulting system.
منابع مشابه
Model Checking and CompilingUML State Machines
We describe HUGO, a prototype tool designed to facilitate the use of UML state machines in software projects. On the one hand it automatically verifies state machines using the model checker SPIN, on the other hand it compiles state machines into Java code that can be integrated into any Java application. The model checking feature is primarily designed to verify whether interactions expressed ...
متن کاملEngineering Support for UML Activities by Automated Model-Checking — An Example
In our approach for the engineering of reactive services, we specify systems as collaborations by means of UML 2.0 activities. In automated and correctness-preserving steps, the collaborative models are transformed into executable code. The semantics of the activities are defined using temporal logic. This formal fundament can be utilized to prove that the collaborations fulfill certain general...
متن کاملArctis and Ramses: Tool Suites for Rapid Service Engineering
For our highly automated service engineering approach SPACE, we built the tool suites Arctis and Ramses. Arctis focuses on abstract, reusable service specifications that are composed from UML 2.0 collaborations and activities. It supports the analysis of service specifications by model checking via TLC. A consistent specification can be transformed into UML state machines and components. For th...
متن کاملRealization of UML Class and State Machine Models in the C# Code Generation and Execution Framework
Many benefits are expected due to usage of code generation tools. A reliable application should be created effectively based on complex structural and behavioral models. Model driven approach for program development is realized in Framework for eXecutable UML (FXU). The tool transforms UML models into C# source code and supports execution of the application reflecting the behavioral model. The ...
متن کاملModel Checking - Timed UML State Machines and Collaborations
We describe a prototype tool, hugo/RT, that is designed to automatically verify whether the timed state machines in a UML model interact according to scenarios specified by time-annotated UML collaborations. Timed state machines are compiled into timed automata that exchange signals and operations via a network automaton. A collaboration with time constraints is translated into an observer time...
متن کامل